<?php
/**
 * 系統名稱: Lotto 系統
 * 檔案說明: 專案管理-修改
 * $Author$
 * $Id$
 *
 */

if (!defined("TransferAPI_lib_include")){
	define("TransferAPI_lib_include", 1);
	include_once(__Modules_Path."/JSon.lib.php");

	function getPFAdminIsOnline($strPFSID, $intUID, $intGroupID){
		$fp = file(__PlatFormAPILink.'/admin_isonline.api.php?Session='.$strPFSID.'&UID='.$intUID.'&GroupID='.$intGroupID);
		$strCon = implode("", $fp);

		$objJS = new Services_JSON();
		$objCon = $objJS -> decode($strCon);

		if($objCon -> Status_Code == 0)return true;

		$GLOBALS["errormessage"] = $objCon -> ErrMsg;
		$GLOBALS["errorhidden"] = $objCon -> ErrInfo;

		return false;
	}


	/**
	 * 將 LottoID 轉換成平台  Game ID
	 * @param	intLottoID 樂透序號
	 * @return	int
	 */
	function getLottoIDToPFGameID($intLottoID){
		return $intLottoID + 30;
	}


	/**
	 * 從平台取得以使用信用額度
	 * @param	strPFSID 平台的 session id
	 * @param	intUID 使用者序號
	 * @return	int
	 */
	function getPFMemberUsedCredit($strPFSID, $intUID){
		$fp = file(__PlatFormAPILink.'/member_usedcredit.api.php?Session='.$strPFSID.'&UserID='.$intUID);
		$strCon = implode("", $fp);

		$objJS = new Services_JSON();
		$objCon = $objJS -> decode($strCon);

		if($objCon -> Status_Code != 0){
			$GLOBALS["errormessage"] = $objCon -> ErrMsg;
			$GLOBALS["errorhidden"] = $objCon -> ErrInfo;
			return false;
		}

		return $objCon -> UsedCredit;
	}


	/**
	 * 從平台取得以使用信用額度
	 * @param	strPFSID 平台的 session id
	 * @param	intUID 使用者序號
	 * @param	intUID 使用者序號
	 * @return	int
	 */
	function getPFMemberUCreditParamScale($strPFSID, $objUser, $intLottoID){
		$arrPID = array(2 => $objUser -> SubID, 3 => $objUser -> MainID, 4 => $objUser -> StockID, 5 => $objUser -> DirectorID, 6 => $objUser -> Layer6ID);
		$fp = file(__PlatFormAPILink.'/member_ucredit_param_scale.api.php?Session='.$strPFSID.'&UserID='.$objUser -> ID.'&PID='.urlencode(implode(",", $arrPID)).'&GameID='.getLottoIDToPFGameID($intLottoID));
		$strCon = implode("", $fp);

		$objJS = new Services_JSON();
		$objCon = $objJS -> decode($strCon);

		if($objCon -> Status_Code != 0){

			$GLOBALS["errormessage"] = $objCon -> ErrMsg;
			$GLOBALS["errorhidden"] = $objCon -> ErrInfo;
			return false;
		}

		return $objCon;
	}

	function getPFMemberParamToLotto($intLottoID, $intGLine, $arrPFParam){
		$arrParam = array();

		foreach($arrPFParam as $intUID => $arrV1){
			foreach($arrV1 as $intBT => $arrV2){
				foreach($arrV2 as $intParamType => $arrV3){
					if($intParamType != 1)continue;

					$intParam = 100 - $arrV3[$intGLine];
					if($intParam < 0 && $intParam > 100)$intParam = 100;

					$arrParam[$intUID][$intLottoID][$intBT] = $intParam;
				}
			}
		}
		return $arrParam;
	}

	function getPFMemberScaleToLotto($objUser, $arrPFScale){
		$arrGroup = array(1 => $objUser -> ID, 2 => $objUser -> SubID, 3 => $objUser -> MainID, 4 => $objUser -> StockID, 5 => $objUser -> DirectorID, 6 => $objUser -> Layer6ID);
		$arrLayer[1] = array();
		$arrLayer[2] = array();
		$arrLayer[3] = array();
		$arrLayer[4] = array();
		$arrLayer[5] = array();
		$arrLayer[6] = array();
		$intLv1ID = $objUser -> ID;
		$intLv2ID = $objUser -> SubID;
		$intLv3ID = $objUser -> MainID;
		$intLv4ID = $objUser -> StockID;
		$intLv5ID = $objUser -> DirectorID;
		$intLv6ID = $objUser -> Layer6ID;

		$arrPreScale = array();
		foreach($arrPFScale as $intUID => $objScale){
			$arrPreScale[$intUID][MinRate] = round($objScale -> MinRate / 100, 2);
			$arrPreScale[$intUID][MaxRate] = round($objScale -> MaxRate / 100, 2);
		}

		foreach($arrGroup as $intGroup => $intUID){
			switch($intGroup){
				case 2:
					$arrLayer[1][2] = 1 - $arrPreScale[$intLv1ID][MinRate];

					$arrLayer[2][2] = 1;
					$arrLayer[3][2] = 1;
					$arrLayer[4][2] = 1;
					$arrLayer[5][2] = 1;
					$arrLayer[6][2] = 1;
					break;

				case 3:
					$flBScale = $arrLayer[1][2] - $arrPreScale[$intLv2ID][MinRate] - $arrPreScale[$intLv3ID][MinRate] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 代理商剩餘成數 - 總代理 - 股東 - 總監 - 業務總監 - 公司最小成數
					$flLv3Scale = $flBScale + $arrPreScale[$intLv2ID][MinRate];
					if($flLv3Scale > $arrPreScale[$intLv2ID][MaxRate])$flLv3Scale = $arrPreScale[$intLv2ID][MaxRate];
					$arrLayer[1][3] = $arrLayer[1][2] - $flLv3Scale;

					$flBScale = $arrLayer[2][2] - $arrPreScale[$intLv2ID][MinRate] - $arrPreScale[$intLv3ID][MinRate] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 代理商剩餘成數 - 總代理 - 股東 - 總監 - 業務總監 - 公司最小成數
					$flLv3Scale = $flBScale + $arrPreScale[$intLv2ID][MinRate];
					if($flLv3Scale > $arrPreScale[$intLv2ID][MaxRate])$flLv3Scale = $arrPreScale[$intLv2ID][MaxRate];
					$arrLayer[2][3] = 1 - $flLv3Scale;

					$arrLayer[3][3] = 1;
					$arrLayer[4][3] = 1;
					$arrLayer[5][3] = 1;
					$arrLayer[6][3] = 1;
					break;

				case 4:
					$flBScale = $arrLayer[1][3] - $arrPreScale[$intLv3ID][MinRate] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總代理剩餘成數 - 股東 - 總監 - 業務總監 - 公司最小成數
					$flLv4Scale = $flBScale + $arrPreScale[$intLv3ID][MinRate];
					if($flLv4Scale > $arrPreScale[$intLv3ID][MaxRate])$flLv4Scale = $arrPreScale[$intLv3ID][MaxRate];
					$arrLayer[1][4] = $arrLayer[1][3] - $flLv4Scale;

					$flBScale = $arrLayer[2][3] - $arrPreScale[$intLv3ID][MinRate] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總代理剩餘成數 - 股東 - 總監 - 業務總監 - 公司最小成數
					$flLv4Scale = $flBScale + $arrPreScale[$intLv3ID][MinRate];
					if($flLv4Scale > $arrPreScale[$intLv3ID][MaxRate])$flLv4Scale = $arrPreScale[$intLv3ID][MaxRate];
					$arrLayer[2][4] = $arrLayer[2][3] - $flLv4Scale;

					$flBScale = $arrLayer[3][3] - $arrPreScale[$intLv3ID][MinRate] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總代理剩餘成數 - 股東 - 總監 - 業務總監 - 公司最小成數
					$flLv4Scale = $flBScale + $arrPreScale[$intLv3ID][MinRate];
					if($flLv4Scale > $arrPreScale[$intLv3ID][MaxRate])$flLv4Scale = $arrPreScale[$intLv3ID][MaxRate];
					$arrLayer[3][4] = $arrLayer[3][3] - $flLv4Scale;

					$arrLayer[4][4] = 1;
					$arrLayer[5][4] = 1;
					$arrLayer[6][4] = 1;
					break;

				case 5:
					$flBScale = $arrLayer[1][4] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 股東剩餘成數 - 總監 - 業務總監 - 公司最小成數
					$flLv5Scale = $flBScale + $arrPreScale[$intLv4ID][MinRate];
					if($flLv5Scale > $arrPreScale[$intLv4ID][MaxRate])$flLv5Scale = $arrPreScale[$intLv4ID][MaxRate];
					$arrLayer[1][5] = $arrLayer[1][4] - $flLv5Scale;

					$flBScale = $arrLayer[2][4] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 股東剩餘成數 - 總監 - 業務總監 - 公司最小成數
					$flLv5Scale = $flBScale + $arrPreScale[$intLv4ID][MinRate];
					if($flLv5Scale > $arrPreScale[$intLv4ID][MaxRate])$flLv5Scale = $arrPreScale[$intLv4ID][MaxRate];
					$arrLayer[2][5] = $arrLayer[2][4] - $flLv5Scale;

					$flBScale = $arrLayer[3][4] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 股東剩餘成數 - 總監 - 業務總監 - 公司最小成數
					$flLv5Scale = $flBScale + $arrPreScale[$intLv4ID][MinRate];
					if($flLv5Scale > $arrPreScale[$intLv4ID][MaxRate])$flLv5Scale = $arrPreScale[$intLv4ID][MaxRate];
					$arrLayer[3][5] = $arrLayer[3][4] - $flLv5Scale;

					$flBScale = $arrLayer[4][4] - $arrPreScale[$intLv4ID][MinRate] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 股東剩餘成數 - 總監 - 業務總監 - 公司最小成數
					$flLv5Scale = $flBScale + $arrPreScale[$intLv4ID][MinRate];
					if($flLv5Scale > $arrPreScale[$intLv4ID][MaxRate])$flLv5Scale = $arrPreScale[$intLv4ID][MaxRate];
					$arrLayer[4][5] = $arrLayer[4][4] - $flLv5Scale;

					$arrLayer[5][5] = 1;
					$arrLayer[6][5] = 1;
					break;

				case 6:
					$flBScale = $arrLayer[1][5] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總監剩餘成數 - 業務總監 - 公司最小成數
					$flLv6Scale = $flBScale + $arrPreScale[$intLv5ID][MinRate];
					if($flLv6Scale > $arrPreScale[$intLv5ID][MaxRate])$flLv6Scale = $arrPreScale[$intLv5ID][MaxRate];
					$arrLayer[1][6] = $arrLayer[1][5] - $flLv6Scale;

					$flBScale = $arrLayer[2][5] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總監剩餘成數 - 業務總監 - 公司最小成數
					$flLv6Scale = $flBScale + $arrPreScale[$intLv5ID][MinRate];
					if($flLv6Scale > $arrPreScale[$intLv5ID][MaxRate])$flLv6Scale = $arrPreScale[$intLv5ID][MaxRate];
					$arrLayer[2][6] = $arrLayer[2][5] - $flLv6Scale;

					$flBScale = $arrLayer[3][5] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總監剩餘成數 - 業務總監 - 公司最小成數
					$flLv6Scale = $flBScale + $arrPreScale[$intLv5ID][MinRate];
					if($flLv6Scale > $arrPreScale[$intLv5ID][MaxRate])$flLv6Scale = $arrPreScale[$intLv5ID][MaxRate];
					$arrLayer[3][6] = $arrLayer[3][5] - $flLv6Scale;

					$flBScale = $arrLayer[4][5] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總監剩餘成數 - 業務總監 - 公司最小成數
					$flLv6Scale = $flBScale + $arrPreScale[$intLv5ID][MinRate];
					if($flLv6Scale > $arrPreScale[$intLv5ID][MaxRate])$flLv6Scale = $arrPreScale[$intLv5ID][MaxRate];
					$arrLayer[4][6] = $arrLayer[4][5] - $flLv6Scale;

					$flBScale = $arrLayer[5][5] - $arrPreScale[$intLv5ID][MinRate] - $arrPreScale[$intLv6ID][MinRate]; // 剩餘成數 = 總監剩餘成數 - 業務總監 - 公司最小成數
					$flLv6Scale = $flBScale + $arrPreScale[$intLv5ID][MinRate];
					if($flLv6Scale > $arrPreScale[$intLv5ID][MaxRate])$flLv6Scale = $arrPreScale[$intLv5ID][MaxRate];
					$arrLayer[5][6] = $arrLayer[5][5] - $flLv6Scale;

					$arrLayer[6][6] = 1;
					break;
			} //switch($intGroup)
		} //foreach($arrGroup as $intGroup => $intUID)

		if($arrLayer[1][6] < $arrPreScale[$intLv6ID][MinRate] || $arrLayer[2][6] < $arrPreScale[$intLv6ID][MinRate] || $arrLayer[3][6] < $arrPreScale[$intLv6ID][MinRate] || $arrLayer[4][6] < $arrPreScale[$intLv6ID][MinRate] || $arrLayer[5][6] < $arrPreScale[$intLv6ID][MinRate]){
			$GLOBALS["errormessage"] = "Scale To Lotto Error!!!"; 
			$GLOBALS["errorhidden"] = "PreScale => \n".print_r($arrPreScale,true)."\nLayerScale => \n".print_r($arrLayer,true);
			return false;
		}
		return $arrLayer;
	}
//-------------------------------------------------------//
//TransferAPI_lib_include End
}
?>